package com.uex.dev.manage.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.uex.dev.manage.admin.po.UserPO;
import com.uex.dev.manage.admin.vo.user.UserPageReq;
import com.uex.dev.manage.admin.vo.user.UserPageResp;
import com.uex.dev.manage.admin.vo.wx.BindResp;
import com.uex.dev.manage.common.base.PageResult;
import jakarta.servlet.http.HttpServletRequest;

import java.util.Optional;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wangchao
 * @since 2024-02-22
 */
public interface IUserService extends IService<UserPO> {

    /**
     * 新增用户
     * @param req
     * @return
     */
    Boolean add(UserPO req);

    /**
     * 用户登录
     * @param req
     * @return
     */
    String login(UserPO req);

    /**
     * 获取当前登录用户
     * @param token
     * @return
     */
    Optional<UserPO> getLoginUser(String token);

    /**
     * 获取用户列表
     * @param req
     * @return
     */
    PageResult<UserPageResp> selectList(UserPageReq req);

    /**
     * 内部用户绑定WXID
     * @param userBindReq
     */
    BindResp userBind(UserPO userBindReq);

    /**
     * 获取WXID绑定关系
     * @param request
     */
    BindResp getBind(HttpServletRequest request);
}
